1. Field of the Invention
This invention relates generally to computer networking, and more particularly to methods and systems for using micro-flow state information in conjunction with network tunneling techniques.
2. Description of the Related Art
Due to high customer demand for increasingly reliable and differentiated services, today's Internet Service Providers (ISPs) are constantly faced with the challenge of adapting their networks to support increased customer demand and growth. As a result, many ISPs currently utilize network tunneling techniques to interconnect multiple transit devices.
One such network tunneling technique is Multi-protocol Label Switching (MPLS), which provides Layer 2 switching by assigning micro-flows to aggregate flows along larger paths, called Label Switched Paths (LSPs). Thus, a conventional MPLS network integrates Open Systems Interconnection (OSI) based Layer 2 switching with OSI based Layer 3 routing.
A conventional MPLS network includes a plurality of Label Switched Routers (LSRs), each of which includes a control component and a forwarding component. The control component uses a standard routing protocol to exchange information with other LSRs to build and maintain a forwarding table. When packets arrive, the forwarding component searches the forwarding table maintained by the control component to make a routing decision for each packet. Specifically, the forwarding component examines information included in the packet's header, searches the forwarding table for a match, and directs the packet from the input interface to the output interface across the system's switching fabric.
The header of each packet is generally given a label, which is a short, fixed length value that identifies a Forwarding Equivalence Class (FEC) for the packet. Each FEC is a set of packets that are forwarded over the same path through a network, even if the individual packets' ultimate destinations are different. Label switches use the FEC to determine which LSP to utilize for transmitting the packet. It should be noted that a plurality of FECs may be mapped to the same LSP, and likewise, more than one LSP may be mapped to each FEC. The packet is then transmitted using the selected LSP, which defines an ingress-to-egress path through the network domain that is followed by all packets assigned to a specific FEC.
In the core of the network, LSRs ignore the packet's network layer header and simply forward the packet using the packet's label. Basically, when a labeled packet arrives at a label switch, the forwarding component uses the input port number and label to perform an exact match search of its forwarding table. When a match is found, the forwarding component retrieves the next hop address from the forwarding table and directs the packet to the outbound interface for transmission to the next hop in the LSP.
This allows for the OSI interconnection Layer to by-pass having to look in the individual Layer 3 destinations and to simply route based upon the MPLS labels. However, conventional MPLS networks generally do not maintain flow state information on each individual micro-flow within a particular LSP. As such, Quality of Service (QoS) in the IP network typically cannot be adequately provided. Such failure to provide QoS results in such problems as micro-flows within a tunnel (e.g., LSP) cannot have different QoS characteristics. In addition, routers that have some type of a switching fabric also may have some difficulty switching a large tunnel (e.g., LSP) within their switching fabric because the tunnels may exceed the bandwidth (e.g., 2.5 Gbps) of internal fabric links, thereby precluding the router from switching a tunnel that is larger than that bandwidth (e.g., 2.5 Gbps). Service providers may wish to offer premium services defined by Service Level Agreements (SLAs) to expedite traffic from certain customers or applications. QoS in IP networks gives devices the intelligence to preferentially handle traffic as dictated by network policy. Further, QoS mechanisms give network managers the ability to control the mix of bandwidth, delay, jitter, and packet loss in the network.
To adequately provide QoS, a network generally should maintain flow state information for each micro-flow routed through the network. This flow state information generally should be maintained in memory, using a separate entry for each micro-flow. However, policing millions of flow state data entries, one for each micro-flow, presents a prohibitively time consuming and processor intensive task in a conventional MPLS network domain.
For example, to maintain adequate QoS, statistics should be maintained for each micro-flow transmitted along each LSP. To accomplish this using a conventional MPLS network millions of flow state data entries would need to be searched to determine which entries pertain to a particular LSP. Upon finding thousands of entries that are of interest, the prior art system would then need to add up all the bytes, packets, and errors that relate to the LSP. When multiple LSPs are present, the task is multiplied by the number of LSPs.
A similar situation occurs when altering the path of an LSP in a conventional MPLS network. To alter the path of an LSP while maintaining flow state information for each micro-flow, the prior art system generally would need to search through millions of flow state data entries to find particular entries that are associated with the LSP being altered. Upon finding thousands of entries associated with the LSP, the system would alter each entry reflect the LSP change. For the above reasons, conventional MPLS systems generally do not maintain flow state information on a per micro-flow basis, and as a result, generally do not provide adequate QoS.
In view of the foregoing, there is a need for systems and methods for providing network tunneling utilizing flow state information. The system should maintain flow state information on a per flow basis, yet still be usable with network tunneling techniques.